<?php

Class mHacerTransferencia extends CI_Model {

    /**
     * Recibe los datos para generar una transferencia, un movimiento y una notificacion, e inserta los datos en la BBDD
     *
     * @param array $data
     * @param integer $strIdCuentaOrigen
     * @param integer $idMovimiento
     * @param string $strCuenta
     * @param integer $idCliente
     * @param boolean $idDestino
     */
    public function insertTransferencia($data, $strIdCuentaOrigen, $strCuenta, $idMovimiento, $IdCliente, $isDestino) {

        $this->db->query("insert into transferencia(idMovimiento, idCuentaOrigen, cuentaDestino, porCuentaDe,referencia, beneficiario, conceptoAd)
                            values (" . $idMovimiento . "," . $strIdCuentaOrigen . ",'" . $strCuenta . "','" . $data['txtPorCuentaDe'] . "',
                            '" . $data['txtReferencia'] . "','" . $data['txtBeneficiario'] . "','" . $data['txtConceptoAd'] . "')");
        $texto = "";
        $asunto = "";
        if ($isDestino == 0) {
            $texto = lang('hechoTransferencia') . " " . $strCuenta . " " . lang('de') . " " . $data['txtImporte'];
            $asunto = lang('transferenciaEmitida');
        } else {
            $texto = lang('recibidoTransferencia') . " " . $strCuenta . " " . lang('de') . " " . $data['txtImporte'];
            $asunto = lang('transferenciaRecibida');
        }
        $this->db->query('insert into notificacion(text, idCliente, asunto)
        values("' . $texto . '", ' . $IdCliente . ', "' . $asunto . '")');
    }

    /**
     * Carga las transferencias habituales de un cliente, segun a que cuenta haga la transferencia, el beneficiario de la transferencia, y el concepto, y lo devuelve en un array de objetos.
     *
     * @param int $idCliente
     * @return mixed
     */
    public function transferenciasHabituales($idCliente) {
        $this->db->select('c.codigoEntidad, c.codigoOficina, c.codigoControl, c.codigoCuenta, c.saldo, cuentaDestino, beneficiario, conceptoAd, c.id as idCuenta', false);
        $this->db->from('transferencia t, cuentaCliente cc, movimiento m, cuenta c');
        $this->db->where('t.idMovimiento = m.id');
        $this->db->where('m.idCuenta = c.id');
        $this->db->where('c.id = cc.idCuenta');
        $this->db->where('c.saldo > 0');
        $this->db->where('cc.idCliente = ' . $idCliente);
        $this->db->group_by('cuentaDestino');
        $this->db->group_by('beneficiario');
        $this->db->group_by('conceptoAd');
        $this->db->order_by('count(*)', 'desc');
        $this->db->limit(3);
        return $this->db->get()->result();
    }

}

?>